package com.xique.door.project.elevator.biz.service;


import com.xique.common.core.web.domain.AjaxResult;
import com.xique.door.bean.request.elevator.ElevatorComElvInfoListWebRequest;
import com.xique.door.bean.request.elevator.ElevatorLastRunListWebRequest;
import com.xique.door.bean.request.elevator.ElevatorRunInfoWebRequest;
import com.xique.door.bean.request.elevator.ElevatorTotalMeterWebRequest;

/**
 * @author shd
 * @create 2021/10/15 13:21
 */
public interface IElevatorBizWebService {

    /**
     * 获取session_token
     * @author shd
     * @date 2021/10/11 14:05
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getSessionToken();

    /**
     * 获取项目信息
     * @author shd
     * @date 2021/10/15 13:22
     * @param parkId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getCommunityData(Long parkId);

    /**
     * 获取电梯实时运行数据
     * @author shd
     * @date 2021/10/15 16:42
     * @param elvId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getDeviceRunInfo(Long elvId);

    /**
     * 获取电梯参数
     * @author shd
     * @date 2021/10/18 11:14
     * @param elvId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElevatorParameter(Long elvId);

    /**
     * 电梯基础信息查询
     * @author shd
     * @date 2021/10/18 11:14
     * @param elvId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElvInfo(Long elvId);

    /**
     * 获取电梯运行数据
     * @author shd
     * @date 2021/10/18 13:42
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElvRun(ElevatorRunInfoWebRequest request);

    /**
     * 获取频繁时段数据
     * @author shd
     * @date 2021/10/19 11:02
     * @param elvId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElvFrequentPeriod(Long elvId);

    /**
     * 电梯总里程统计
     * @author shd
     * @date 2021/10/19 13:47
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getTotalMeter(ElevatorTotalMeterWebRequest request);

    /**
     * 电梯等待时间统计
     * @author shd
     * @date 2021/10/20 11:06
     * @param elvId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElvWaitTimeAndArrivalTimes(Long elvId);

    /**
     * 获取最新事件
     * @author shd
     * @date 2021/10/20 13:44
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElvEventList(ElevatorLastRunListWebRequest request);

    /**
     * 获取最新事件
     * @author shd
     * @date 2021/10/20 13:44
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElvLastEvent(ElevatorLastRunListWebRequest request);

    /**
     * 服务开通信息统计
     * @author shd
     * @date 2021/10/21 9:48
     * @param parkId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getServiceInfo(Long parkId);

    /**
     * 地区服务开通信息统计
     * @author shd
     * @date 2021/10/21 9:48
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getAreaServiceInfo(Long code);

    /**
     * 电梯安全性排行
     * @author shd
     * @date 2021/10/21 10:21
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getSecurityRanking(Long code);

    /**
     * 社区电梯运行统计
     * @author shd
     * @date 2021/10/21 11:24
     * @param parkId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getComElvRun(Long parkId);

    /**
     * 社区电梯统计
     * @author shd
     * @date 2021/10/25 15:19
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getComElvInfo(ElevatorComElvInfoListWebRequest request);

    /**
     * 基础信息
     * @author shd
     * @date 2021/10/22 13:31
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    @Deprecated
    AjaxResult getBaseData();

    /**
     * 获取地址信息
     * @author shd
     * @date 2021/10/22 15:00
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getRegionInfo(Long code);

    /**
     * 根据地址获取电梯数量
     * @author shd
     * @date 2021/10/26 14:38
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    @Deprecated
    AjaxResult getRegionCount(Long code);

    /**
     * 获取项目信息
     * @author shd
     * @date 2021/10/22 15:00
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getCommunity(Long code);

    /**
     * 搜索项目
     * @author shd
     * @date 2021/10/29 10:11
     * @param content
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult searchCommunity(String content);

    /**
     * 近30天故障
     * @author shd
     * @date 2021/10/25 11:10
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getFaultList(Long code);

    /**
     * 近30天故障
     * @author shd
     * @date 2021/10/25 11:10
     * @param parkId
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getComFaultList(Long parkId);

    /**
     * 总体概况
     * @author shd
     * @date 2021/10/25 13:33
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getGeneralData(Long code);

    /**
     * 根据地区统计运行数据
     * @author shd
     * @date 2021/10/25 14:20
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getCityElvRun(Long code);

    /**
     * 根据地区统计故障信息
     * @author shd
     * @date 2021/10/27 8:34
     * @param code
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getAreaFault(Long code);

    /**
     * 获取电动车报警提醒
     * @author shd
     * @date 2021/10/28 11:55
     * @return com.ruoyi.common.core.domain.AjaxResult
     */
    AjaxResult getElectromobileInfo();
}
